package com.wk.springboot.annotation;

import java.lang.annotation.*;

/**
 * description:
 * <pre>
 *     1. 元注解
 *          1.@Retention：描述注解的作用域
 *          有以下三个取值
 *              RetentionPolicy.SOURCE
 *                  说明注解只在代码编译期生效，如<code>@Override</code>注解
 *              RetentionPolicy.CLASS
 *                  默认的注解行为。表示在代码编译期，此注解会包含到class文件中，但是不会被jvm执行
 *              RetentionPolicy.RUNTIME
 *                  类似<code>RetentionPolicy.CLASS</code>，但是会被jvm执行
 *          2.@Target：表示注解可以运用的位置
 *          有以下取值：
 *              ElementType.TYPE
 *              ElementType.FIELD
 *              ElementType.METHOD
 *              ElementType.PARAMETER
 *              ElementType.CONSTRUCTOR
 *              ElementType.LOCAL_VARIABLE
 *              ElementType.ANNOTATION_TYPE
 *              ElementType.PACKAGE
 *          3.@Documented：表示注解可以包含在javadoc中
 *          4.@Inherited：表示注解可以被子类继承
 *      2.注解的方法
 *          注解的方法必须是有返回值的，且返回值只能是以下几种类型
 *              1.8中基本类型
 *              2.String
 *              3.枚举类型
 *          <strong>注意：如果方法只有value()，则value可以省略</strong>
*
 *
 * </pre>
 * date 2020-12-05 11:03
 *
 * @author Administrator
 * @version 1.0
 */

@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
public @interface LogAnnotation {

    String value() default "logging...";

    LogEnum method() default LogEnum.PARAMS;
}
